package com.wind.taobao.api.trade.itemprop.convert
{
	import com.wind.taobao.api.trade.itemprop.model.ItemProp;
	import com.wind.taobao.core.util.TaobaoConstants;

	import mx.collections.ArrayCollection;


	/**
	 * ItemProp转换器
	 * @author fxy
	 *
	 */
	public class ItemPropConvert
	{
		/**
		 * 转换ItemProp集合
		 */
		public static function convertItemProps(value:Object, type:String="json"):ArrayCollection
		{
			var itemProps:ArrayCollection=new ArrayCollection();
			if (value != null)
			{
				if (type == TaobaoConstants.JSON)
				{
					if ((value as Array).length > 0)
					{
						for (var i:uint=0; i < (value as Array).length; i++)
						{
							itemProps.addItem(convertItemProp((value as Array)[i]));
						}
					}
				}
				else
				{
					//TODO
				}
			}
			return itemProps;
		}

		/**
		 * 转换ItemProp
		 */
		public static function convertItemProp(value:Object, type:String="json"):ItemProp
		{
			var itemProp:ItemProp=new ItemProp();
			if (value == null)
				return itemProp;
			if (type == TaobaoConstants.XML)
			{
				itemProp=convertXMLToItemProp(XML(value), itemProp);
			}
			else
			{
				itemProp=convertJSONToItemProp(value, itemProp);
			}
			return itemProp;
		}

		/**
		 * JSON转换为ItemProp
		 */
		private static function convertJSONToItemProp(json:Object, itemProp:ItemProp):ItemProp
		{
			if (json.hasOwnProperty(TaobaoConstants.PID))
			{
				itemProp.pid=json[TaobaoConstants.PID];
			}
			if (json.hasOwnProperty(TaobaoConstants.NAME))
			{
				itemProp.name=json[TaobaoConstants.NAME];
			}
			if (json.hasOwnProperty(TaobaoConstants.IS_KEY_PROP))
			{
				itemProp.is_key_prop=json[TaobaoConstants.IS_KEY_PROP];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.IS_SALE_PROP))
			{
				itemProp.is_sale_prop=json[TaobaoConstants.IS_SALE_PROP];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.IS_COLOR_PROP))
			{
				itemProp.is_color_prop=json[TaobaoConstants.IS_COLOR_PROP];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.IS_ENUM_PROP))
			{
				itemProp.is_enum_prop=json[TaobaoConstants.IS_ENUM_PROP];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.IS_INPUT_PROP))
			{
				itemProp.is_input_prop=json[TaobaoConstants.IS_INPUT_PROP];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.IS_ITEM_PROP))
			{
				itemProp.is_item_prop=json[TaobaoConstants.IS_ITEM_PROP];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.CHILD_TEMPLATE))
			{
				itemProp.child_template=json[TaobaoConstants.CHILD_TEMPLATE];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.MUST))
			{
				itemProp.must=json[TaobaoConstants.MUST];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.MULTI))
			{
				itemProp.multi=json[TaobaoConstants.MULTI];//已转换Boolean
			}
			if (json.hasOwnProperty(TaobaoConstants.PARENT_PID))
			{
				itemProp.parent_pid=json[TaobaoConstants.PARENT_PID];
			}
			if (json.hasOwnProperty(TaobaoConstants.PARENT_VID))
			{
				itemProp.parent_vid=json[TaobaoConstants.PARENT_VID];
			}
			if (json.hasOwnProperty(TaobaoConstants.PROP_VALUES))
			{
				itemProp.prop_values=json[TaobaoConstants.PROP_VALUES];
			}
			if (json.hasOwnProperty(TaobaoConstants.STATUS))
			{
				itemProp.status=json[TaobaoConstants.STATUS];
			}
			if (json.hasOwnProperty(TaobaoConstants.SORT_ORDER))
			{
				itemProp.sort_order=json[TaobaoConstants.SORT_ORDER];
			}
			return itemProp;
		}

		/**
		 * XML转换为ItemProp
		 */
		private static function convertXMLToItemProp(value:XML, itemProp:ItemProp):ItemProp
		{
			return itemProp;
		}
	}
}